home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / slaexc.z / slaexc
Text File  |  1998-10-30  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSLLLLAAAAEEEEXXXXCCCC((((3333FFFF))))                                                          SSSSLLLLAAAAEEEEXXXXCCCC((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SLAEXC - swap adjacent diagonal blocks T11 and T22 of order 1 or 2 in an
  10.      upper quasi-triangular matrix T by an orthogonal similarity
  11.      transformation
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE SLAEXC( WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2, WORK, INFO )
  15.  
  16.          LOGICAL        WANTQ
  17.  
  18.          INTEGER        INFO, J1, LDQ, LDT, N, N1, N2
  19.  
  20.          REAL           Q( LDQ, * ), T( LDT, * ), WORK( * )
  21.  
  22. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  23.      SLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an
  24.      upper quasi-triangular matrix T by an orthogonal similarity
  25.      transformation.
  26.  
  27.      T must be in Schur canonical form, that is, block upper triangular with
  28.      1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its
  29.      diagonal elemnts equal and its off-diagonal elements of opposite sign.
  30.  
  31.  
  32. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  33.      WANTQ   (input) LOGICAL
  34.              = .TRUE. : accumulate the transformation in the matrix Q;
  35.              = .FALSE.: do not accumulate the transformation.
  36.  
  37.      N       (input) INTEGER
  38.              The order of the matrix T. N >= 0.
  39.  
  40.      T       (input/output) REAL array, dimension (LDT,N)
  41.              On entry, the upper quasi-triangular matrix T, in Schur canonical
  42.              form.  On exit, the updated matrix T, again in Schur canonical
  43.              form.
  44.  
  45.      LDT     (input)  INTEGER
  46.              The leading dimension of the array T. LDT >= max(1,N).
  47.  
  48.      Q       (input/output) REAL array, dimension (LDQ,N)
  49.              On entry, if WANTQ is .TRUE., the orthogonal matrix Q.  On exit,
  50.              if WANTQ is .TRUE., the updated matrix Q.  If WANTQ is .FALSE., Q
  51.              is not referenced.
  52.  
  53.      LDQ     (input) INTEGER
  54.              The leading dimension of the array Q.  LDQ >= 1; and if WANTQ is
  55.              .TRUE., LDQ >= N.
  56.  
  57.      J1      (input) INTEGER
  58.              The index of the first row of the first block T11.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSLLLLAAAAEEEEXXXXCCCC((((3333FFFF))))                                                          SSSSLLLLAAAAEEEEXXXXCCCC((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      N1      (input) INTEGER
  75.              The order of the first block T11. N1 = 0, 1 or 2.
  76.  
  77.      N2      (input) INTEGER
  78.              The order of the second block T22. N2 = 0, 1 or 2.
  79.  
  80.      WORK    (workspace) REAL array, dimension (N)
  81.  
  82.      INFO    (output) INTEGER
  83.              = 0: successful exit
  84.              = 1: the transformed matrix T would be too far from Schur form;
  85.              the blocks are not swapped and T and Q are unchanged.
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.